package redisExampleCode;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.ZParams;

public class RedisZParamsExample {

    static final  Jedis jedis = new Jedis("localhost", 6379);

    public static void main(String[] args) {

        // 准备数据
        jedis.zadd("zset1", 1, "one");
        jedis.zadd("zset1", 2, "two");
        jedis.zadd("zset2", 1, "one");
        jedis.zadd("zset2", 2, "two");
        jedis.zadd("zset2", 3, "three");

        // 创建 ZParams 对象，并设置权重和聚合方式
        ZParams zParams = new ZParams();
        zParams.weights(2, 3); // 设置权重，zset1 的权重为 2，zset2 的权重为 3
        zParams.aggregate(ZParams.Aggregate.SUM); // 设置聚合方式为 SUM

        // 计算有序集合的并集，并存储在新的有序集合 out 中
        //jedis.zunionstore("out", zParams, "zset1", "zset2");
        jedis.zinterstore("out", zParams, "zset1", "zset2");

        // 获取并打印结果
        System.out.println("zset1: " + jedis.zrangeWithScores("zset1", 0, -1));
        System.out.println("zset2: " + jedis.zrangeWithScores("zset2", 0, -1));
        System.out.println("out: " + jedis.zrangeWithScores("out", 0, -1));

        // 关闭连接
        jedis.flushDB();
    }


}
